package org.batatasframework.chart;

import java.util.List;

import javax.persistence.EntityManager;

import org.batatasframework.common.ParameterReader;

import cn.bonoon.kernel.support.IOperator;

/**
 * 
 * @author jackson
 *
 * @see ChartQueryResult
 * @see ChartDefinition
 * @see ParameterReader
 */
public abstract class ChartValueReader {
	
	protected ChartDefinition definition;

	public final ChartValueReader initialize(ChartDefinition definition) {
		this.definition = definition;
		return this;
	}
	
	/**
	 * <pre>负责从数据库读取数据，并返回读取到的数据；
	 * 
	 * 注意：从数据库里查询出来的每一行的数据，都是可以根据所定义的{@link ChartDefinition}定义对象来解析的。
	 * 
	 * 如果需要从多个数据库表返回值的，这个方法也需要负责把这些返回值合并成一个{@link List}返回。
	 * </pre>
	 * 
	 * @see ChartQueryResult
	 */
	public ChartQueryResult read(EntityManager entityManager, IOperator user, ParameterReader reader){ return null; }
}
